package logica_de_presentacion;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import comun.Usuario;
import logica_de_negocio.FaltanDatosEnLaBaseDeDatos;
import logica_de_negocio.gestorUsuario;

public class FormularioLogin extends JInternalFrame implements ActionListener {

	private JTextField usuario;
	private JPasswordField contrasena;
	private JButton aceptar, salir;
	private JPanel pbotones, pUsu, pCon;
	private JLabel lUsu, lCon;
	private boolean correcto;
	private static final long serialVersionUID = 1L;

	public FormularioLogin() {

		correcto = false;// TODAVIA NO SE SABE SI ES CORRECTO

		// BOTONES
		ImageIcon tick = createImageIcon("/logica_de_presentacion/imagenes/TICK.gif");
		aceptar = new JButton("Aceptar", tick);
		aceptar.addActionListener(this);

		ImageIcon cancelar = createImageIcon("/logica_de_presentacion/imagenes/CANCELAR.gif");
		salir = new JButton("Salir", cancelar);
		salir.addActionListener(this);

		// ANADIR AL PANEL DE BOTONES
		pbotones = new JPanel();
		pbotones.setLayout(new FlowLayout());
		pbotones.add(aceptar);
		pbotones.add(salir);

		// USUARIO Y CONTRESENA
		lUsu = new JLabel("Indique el nombre de acceso");
		lCon = new JLabel("Password");
		usuario = new JTextField(20);
		contrasena = new JPasswordField(20);
		// PANEL USUARIO
		pUsu = new JPanel();
		pUsu.setLayout(new FlowLayout());
		pUsu.add(lUsu);
		pUsu.add(usuario);
		// PANEL CONTRASENA
		pCon = new JPanel();
		pCon.setLayout(new FlowLayout());
		pCon.add(lCon);
		pCon.add(contrasena);
		JPanel ptextos = new JPanel();
		ptextos.add(pUsu);
		ptextos.add(pCon);
		// ANADIR AL PANEL PRINCIPAL
		this.getContentPane().setLayout(new BorderLayout());
		this.getContentPane().add(ptextos, "Center");
		this.getContentPane().add(pbotones, "South");
		this.setVisible(true);
		this.pack();

	}

	@Override
	@Deprecated
	public void actionPerformed(ActionEvent e) {

		JButton source = (JButton) e.getSource();

		if (source == aceptar) {

			gestorUsuario gu = new gestorUsuario();

			try {
				correcto = gu
						.comprobar(usuario.getText(), contrasena.getText());
				if (correcto == false) {
					JOptionPane.showMessageDialog(new Frame(),
							"La contrasena o el usuario es incorrecto");
				}
			} catch (ClassNotFoundException e1) {
				JOptionPane.showMessageDialog(new Frame(),
						"No hay informacion en la base de datos");
				this.dispose();
			}
		}
		this.dispose();
	}

	/** Returns an ImageIcon, or null if the path was invalid. */
	protected static ImageIcon createImageIcon(String path) {
		java.net.URL imgURL = Button.class.getResource(path);
		if (imgURL != null) {
			return new ImageIcon(imgURL);
		} else {
			System.err.println("Couldn't find file: " + path);
			return null;
		}
	}

	public boolean getCorrecto() {

		return correcto;
	}

	public Usuario getUsu() throws FaltanDatosEnLaBaseDeDatos,
			ClassNotFoundException {

		gestorUsuario gu = new gestorUsuario();
		Usuario usu = gu.getUsuario(usuario.getText());

		return usu;
	}
}
